package com.feinno.urcs.group.api;

import com.feinno.urcs.group.siptask.task.GroupInviteArgs;
import com.feinno.urcs.group.siptask.task.GroupMessageArgs;
import com.feinno.urcs.group.siptask.task.GroupByeArgs;
import org.helium.framework.annotations.ServiceInterface;

/**
 * 处理本域已开通用户的消息下行需求:
 * 成员终端是否在线, 以及成员的能力, 由GroupTerminalService实现判断, 并直接进行离线存储
 * 包含... TODO
 * Created by honghao on 6/29/15.
 */
@ServiceInterface(id = "group:GroupTerminalService")
public interface GroupTerminalService {
	/**
	 * 处理邀请成员加入群请求
	 *
	 * @param args
	 */
	void inviteJoinGroup(GroupInviteArgs args);

	/**
	 * 发送文本消息
	 *
	 * @param args
	 */
	void sendTextMessage(GroupMessageArgs args);

	/**
	 * 成员踢出群
	 *
	 * @param args
	 */
	void kickMember(GroupByeArgs args);

	/**
	 * 群静默 给用户发送bye ,虽然和kick 一样都是bye ,但是担心kick 有其他逻辑. 所以分开
	 * @param args
	 */
	void silenced(GroupByeArgs args);
}